package q1668_maxRepeating;

public class Solution_1 {
    /*
    查找字符串中连续的单词
    最容易理解的方法 ——> 指针
    我们使用 i 作为指针遍历seq字符串，每当匹配到一个substring(i, i + len)与word相等时
    开始右移指针，匹配成功一次则cnt + 1
    需要注意的是，循环结束后需要考虑是否有成功匹配，否则有可能导致漏计
    例如：
    seq = "aaabaaaabaaabaaaabaaaabaaaabaaaaba"
    word = "aaaba"
     */
    public int maxRepeating(String sequence, String word) {
        int len = word.length(), ans = 0;

        for (int i = 0; i < sequence.length(); i++) {
            int cnt = 0;
            while (i + len < sequence.length() && sequence.substring(i, i + len).equals(word)) {
                i += len;
                ++cnt;
            }
            if (cnt > 0) i -= len;
            ans = Math.max(ans, cnt);
        }
        return ans;
    }
}
